/*
 * 文件名：FeeBillDetailDao.java 版权：Copyright by www.huawei.com 描述： 修改人：Administrator 修改时间：2016年4月12日
 * 跟踪单号： 修改单号： 修改内容：
 */

package com.zcsy.manage.persistence.property;

import java.util.List;

import com.zcsy.manage.model.property.FeeBill;
import com.zcsy.manage.model.property.FeeBillDetail;


/**
 * @Title: FeeBillDetailDao.java
 * @Package： com.zcsy.manage.persistence.property
 * @Description: 物业账单详情管理Dao层
 * @author xujl
 * @Copyright: 2015 武汉中财数元信息技术有限公司 All rights reserved.
 * @date 2016年4月19日
 * @version 1.0
 * @see JDK1.7.0_75
 * @since
 */
public interface FeeBillDetailDao {
    /**
     * @Description 插入缴费详情信息<br>
     * @param record
     *            缴费对象
     * @return 1：插入成功；0：插入失败
     * @author xujl
     * @date 2016年4月14日
     * @see
     */
    int insert(FeeBillDetail record);

    /**
     * @Description 更新缴费详情信息<br>
     * @param record
     *            缴费对象
     * @return 1：更新成功；0：更新失败
     * @author xujl
     * @date 2016年4月14日
     * @see
     */
    int updateByPrimaryKey(FeeBillDetail record);

    /**
     * @Description 根据主键删除缴费详情信息(将state设为4)<br>
     * @param id
     *            主键id
     * @return 1：删除成功；0：删除失败
     * @author xujl
     * @date 2016年4月14日
     * @see
     */
    int deleteByPrimaryKey(String id);

    /**
     * @Description 根据主键获取缴费详情信息详情<br>
     * @param id
     *            主键id
     * @return 缴费对象
     * @author xujl
     * @date 2016年4月14日
     * @see
     */
    FeeBillDetail selectByPrimaryKey(String id);
    
    
    /**
     * @Method: selectByBillID
     * @Description 根据订单id查询缴费详情
     * @param id
     * @return 
     * @author liuziyu liuziyuwri@foxmail.com
     * @date 2016年6月30日
     * @see 
     */
    FeeBillDetail selectByBillID(String billId);
    
    /**
     * @Description 根据房间号获取最近一条成功缴费详情信息详情<br>
     * @param houseId
     *            房间号
     * @return 缴费对象
     * @author xujl
     * @date 2016年4月14日
     * @see
     */
    FeeBillDetail selectLastBill(String houseId);
    
    /** 
     * @Title: selectLastOverdueBill 
     * @Description: 查询最近一条欠费账单
     * @param @param houseId
     * @param @return     
     * @return FeeBillDetail     
     * @throws 
     */
    FeeBillDetail selectLastOverdueBill(String houseId);

    /**
     * @Description 根据关键字获取缴费详情信息列表<br>
     * @param billId
     *            账单id
     * @return 缴费详情列表
     * @author xujl
     * @date 2016年4月14日
     * @see
     */
    List<FeeBillDetail> selectByHouseId(String billId);
    
    /**
     * @Description 根据关键字获取缴费详情信息列表<br>
     * @param record
     *            缴费详情对象
     * @return 缴费详情列表
     * @author xujl
     * @date 2016年4月14日
     * @see
     */
    List<FeeBill> selectByKeyword(FeeBillDetail record);
    
    /**
     * @Method: selectFeeBillDetailByHouseId
     * @Description 根据房屋id查询欠费详情
     * @param housesID
     * @return 
     * @author liuziyu liuziyuwri@foxmail.com
     * @date 2016年7月5日
     * @see 
     */
    List<FeeBillDetail> selectFeeBillDetailByHouseId(List<String> housesID);
    
    /**
     * @Description 根据房屋查询物业信息详单
     * @param houseId
     * @return
     */
    FeeBillDetail getHouseWithProperty(String houseId);
    
    /**
     * 批量插入账单
     * @Method: batchInsertBillDetail
     * @param detailList
     * @author hubing
     */
    int batchInsertBillDetail(List<FeeBillDetail> detailList);
    
    List<FeeBillDetail> selectByHouseIdAndState(String houseId);
    
}
